/*
https://leetcode.cn/problems/climbing-stairs/
思路和算法
我们用 f(x) 表示爬到第 x 级台阶的方案数，考虑最后一步可能跨了一级台阶，也可能跨了两级台阶，所以我们可以列出如下式子：
f(x)=f(x−1)+f(x−2)
*/
class Solution {
public:
    int climbStairs(int n) {
        vector<int> dp(n+1,0);
        dp[0]=1;
        dp[1]=2;
        for(int i=2;i<n;i++){
            dp[i]= dp[i-1]+dp[i-2];
        }
        return dp[n-1];
    }
};